package com.colabo.j2ee.web.core.exception;

/**
 * DAO层的异常定义,这里所指的异常是由BaseBusinessObject,BaseQueryObject中的动作等引发的异常
 */
public class DAOException extends MessageException {
	private static final long serialVersionUID = 1L;

	/**
	 * 构造方法1，只传递自定义的异常提示信息
	 */
	public DAOException(ReadableMessage msg) {
		super(msg);

	}

	/**
	 * 构造方法2，只传递MessageException,主要用于同类型异常的转换，如把CommonException转换为ServiceException，不需要再处理Sysmessage对象
	 */
	public DAOException(Throwable cause) {
		super(cause);
	}

	/**
	 * 构造方法3，把自定义的异常提示信息和引起的异常根原因传递出去
	 */
	public DAOException(ReadableMessage msg, Throwable cause) {
		super(msg, cause);
	}

	/**
	 * 构造方法4，只有提示描述信息
	 */
	public DAOException(String msg) {
		super(msg);
	}

	/**
	 * 构造方法5，把CommonException异常直接转为ServiceException 本方法和构造方法2是一样的，
	 */
	public DAOException(CommonException e) {
		super(e.getMsgObj(), e);
	}

	public DAOException(MediatorException e) {
		super(e.getMsgObj(), e);
	}

	/**
	 * 构造方法6，通过构建SysMessage，以及异常描述和异常源构造ServiceException
	 */
	public DAOException(String msg, ReadableMessage sysMsg, Throwable t) {
		super(msg, sysMsg, t);
	}
}
